import JSEncrypt from "jsencrypt"
import axiosConfig from '../config'; // axios请求配置

  // export const baseURL = 'https://localhost:8058/' //开发环境

  export const baseURL = 'https://api.peixiua.com/v1/client/' //正式环境
 
  // export const baseURL = 'https://api2.miaiy.com/v1/client/' //测试环境



// 需要登录的接口
// const needToken = [
// 	'sys/wxlogin'
// ];
	// 请求头信息
	var headers = {
		// Authorization: ''
	};
export const request = (options) => {
	return new Promise((resolve, reject) => { 
		// 判断是否需要登录
		if (options.needToken) { //需要登录
			// 获取用户 token
			let userToken = uni.getStorageSync('token')
			// 将 token 放入请求头中
			 headers['Authorization'] = userToken
		}
		      // 对需要加密的数据进行加密
			  let encryptedObj;
		     if(options.data != null){
				 const encryptor = new JSEncrypt()
				 encryptor.setPublicKey(axiosConfig.publicKey) // 设置公钥
				 let  encryptedData = encryptor.encryptLong(JSON.stringify(options.data))
				  encryptedObj = {
				   request_data:encryptedData
				 }
			 }
		
		uni.request({
			url: baseURL + options.url, //接口地址：前缀+方法中传入的地址
			method: options.method || 'GET', //请求方法：传入的方法或者默认是“GET”
			data: encryptedObj || {}, //传递参数：传入的参数或者默认传递空集合
			header: headers,
			success: (res) => {
				//返回的数据（不固定，看后端接口，这里是做了一个判断，如果不为true，用uni.showToast方法提示获取数据失败)

					  // if (res.data.code == 200) {
					  // 	resolve(res.data)
					  // } else {
					  // 	reject(res.data)
				   //    }
				   
				   // 解密请求到的数据
				   let decrypt = new JSEncrypt();
				   decrypt.setPrivateKey(axiosConfig.privateKey);
				   var decryptMsg = decrypt.decryptLong(res.data);
					  resolve(JSON.parse(decryptMsg))
				// 如果不满足上述判断就输出数据
			},
			// 这里的接口请求，如果出现问题就输出接口请求失败
			fail: (err) => {
				reject(err)
			},
	
		})
	})
}